package com.ctcemti.mdm.project.sys.service;

import com.ctcemti.mdm.common.result.Result;
import com.ctcemti.mdm.project.sys.entity.OrgStation;
import com.ctcemti.mdm.project.sys.entity.formdata.BaseReq;
import com.github.pagehelper.PageInfo;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;

/**
 * @ClassName IOrgStationService
 * @Description 工点逻辑处理类
 * @Author bxf
 * @Date 16:02 2019/8/8
 * @Version V1.0
 **/
public interface IOrgStationService {
    /**
     * @Author bxf
     * @Description 根据主键删除
     * @Date 11:38 2019/7/12
     * @Param
     * @return
     **/
    int deleteByPrimaryKey(Integer id);
    /**
     * @Author bxf
     * @Description 插入项目工点
     * @Date 11:39 2019/7/12
     * @Param
     * @return
     **/
    int insert(OrgStation record);

    /**
     * @Author bxf
     * @Description 选择性字段插入
     * @Date 11:39 2019/7/12
     * @Param
     * @return
     **/
    int insertSelective(OrgStation record);
    /**
     * @Author bxf
     * @Description 根据主键获取
     * @Date 11:40 2019/7/12
     * @Param
     * @return
     **/
    OrgStation selectByPrimaryKey(String id);

    /**
     * @Author bxf
     * @Description
     * @Date 11:41 2019/7/12
     * @Param 根据主键选择性字段更新对象
     * @return
     **/
    int updateByIdSelective(OrgStation OrgStation);
    /**
     * @Author bxf
     * @Description
     * @Date 11:47 2019/7/12
     * @Param 根据主键更新对象
     * @return
     **/
    int updateByPrimaryKey(OrgStation record);

    /**
     * @Author bxf
     * @Description 获取所有数据字典字典分类表子目
     * @Date 10:55 2019/7/15
     * @Param
     * @return
     **/
    public List<OrgStation> selectAllOrgStation();

    /**
     * @Author bxf
     * @Description 根据父id获取对象list
     * @Date 16:18 2019/7/12
     * @Param
     * @return
     **/
    public List<OrgStation> selectByPid(String s);

    /**
     * @Author bxf
     * @Description 根据实体中的属性值进行查询，查询条件使用等号
     * @Date 15:19 2019/7/16
     * @Param
     * @return
     **/
    public List<Map<String,Object>> selectOrgStation(OrgStation OrgStation);

    /**
     * @Author bxf
     * @Description 根据主键删除
     * @Date 11:38 2019/7/12
     * @Param
     * @return
     **/
    int deleteByPrimaryKeys(String ids);
    /* *
     * @Author bxf
     * @Description 根据projectid分页获取数据
     * @Date 11:54 2019/8/14
     * @param id
     * @param baseReq
     * @return com.github.pagehelper.PageInfo<java.util.Map<java.lang.String,java.lang.Object>>
     */
    PageInfo<Map<String,Object>> selectListByPid(String id , BaseReq baseReq);
    /* *
     * @Author bxf
     * @Description 导入项目组织对象
     * @Date 9:10 2019/8/10
     * @param multipartFile
     * @param projectId
     * @param response
     * @return java.util.Map<java.lang.String,java.lang.Object>
     */
    Map<String, Object> uploadFile(MultipartFile multipartFile, String projectId, HttpServletResponse response,HttpServletRequest request) throws SQLException, IOException;

    /* *
     * @Author bxf
     * @Description 根据人员id获取项目
     * @Date 11:10 2019/8/19
     * @param pId
     * @param type
     * @param personId
     * @return com.ctcemti.mdm.common.result.Result
     */
    Result getProjectsForTree(String pId, String type, String personId);
    /* *
     * @Author bxf
     * @Description 移动工点至其他项目
     * @Date 16:45 2019/8/19
     * @param ids
     * @param projectId
     * @return int
     */
    int moveOrgStation(String ids, String projectId,HttpServletRequest request);
    /* *
     * @Author bxf
     * @Description 根据名称同步查看项目树
     * @Date 16:06 2019/8/20
     * @param id
     * @param request
     * @param type
     * @param personId
     * @param name
     * @param stationFlag
     * @return com.ctcemti.mdm.common.result.Result
     */
    Result getProjectsForTreeByName(HttpServletRequest request,String id, String type,String name,String stationFlag);
}
